<?php
/**
* teacher管理组卷的入口
*/
class Teacher_module extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
        //登陆状态检测
        if (!$this->session->userdata('r_user_in')) {
            redirect('home');
        }
        //权限检测
        if ($this->session->userdata('r_role_id') != 2) {
            redirect('home');
        }
    }

    public function index()
    {
        //准备数据
        $this->load->model('module_model');
        $this->load->model('teacher_model');
        $me=$this->teacher_model->get_by_username($this->session->userdata('r_username'));
        $data['modules']=$this->module_model->get_modules_by_teacher_id($me['id']);

        $data['title']='组卷';
        $this->load->view('teacher_module/index', $data);
    }

    /**
     * 查看一个模块
     * @param  integer $id [description]
     * @return [type]      [description]
     */
    public function check($id)
    {
        $this->load->model('module_model');
        $module=$this->module_model->get_module_by_id($id);
        if (!$module) {
            return $this->load->view('error');
        }
        $data['title']='查看模块';
        $data['module']=$module;
        $data['relative_test_points']=$this->module_model->get_relative_test_point($module['id']);

        $this->load->view('teacher_module/check', $data);
    }

    /**
     * 编辑一个模块
     * @param  [type] $id [description]
     * @return [type]     [description]
     */
    public function edit($id){
        $this->load->model('module_model');
        $module=$this->module_model->get_by_id($id);
        $data['title']='编辑模块';
        $data['module']=$module;
        $this->load->model('test_point_model');
        if ($module['type']==0) {
            $data['test_points']=$this->module_model->get_relative_test_point($module['id']);
        } else {
            $data['test_points']=$this->module_model->get_relative_test_point($module['parent_id']);
        }
        $data['relative_test_points']=$this->module_model->get_relative_test_point($module['id']);
        $this->load->view('teacher_module/edit', $data);
    }

    public function editModule(){
        $this->load->model('module_model');
		$id=$this->input->post('module_id');
		$module=$this->module_model->get_by_id($id);
		if(!$module){
           return $this->load->view('error');
        }
        //post方法
		$name=$this->input->post('module_name');
		$time_limit=$this->input->post('module_time_limit');
		$type=1;
		$relative_test_points=$this->input->post('relative_test_points');
		$this->load->model('teacher_model');
        $me=$this->teacher_model->get_by_username($this->session->userdata('r_username'));
        echo $me['id'];
		if($module['type']==1){
		//如果是自定义类型，做更新操作
		//将模块写入数据库
			$item = array(
			    'name' => $name,
				'time_limit' => $time_limit,
				'type' => $type,
			);
			//数据库操作
			if($this->module_model->delete_relative_test_point($id)&&
				$this->module_model->add_relative_test_point($id,$relative_test_points)&&
				$this->module_model->update($id,$item)	
			){
				$this->session->set_flashdata('message','操作成功');
				redirect('teacher_module/index');	
			}else{
				$this->session->set_flashdata('message','操作失败');
				redirect('teacher_module/index');	
			}
		}else{
			//如果是系统模块，做新建操作
			$item = array(
				'name' => $name,
				'time_limit' => $time_limit,
				'type' => $type,
				'parent_id'=>$module['id']
			);
            $this->load->model('module_model');
            if($this->module_model->add($item)){
                $module_id=$this->db->insert_id();
                $item = array(
                    'teacher_id'=>$me['id'],
                    'module_id'=>$module_id
                );
                $this->module_model->inertTeacherInModule($item);
				//添加模块和考点的关系
				if($this->module_model->add_relative_test_point($module_id,$relative_test_points)){
					$this->session->set_flashdata('message','操作成功');
					redirect('teacher_module/index');		
                }
			}
			$this->session->set_flashdata('message','操作失败');
            redirect('teacher_module/index');
    }
}



    // public function edit($id)
    // {
    //     if ($id) {
    //         //get方法
    //         $this->load->model('module_model');
    //         $module=$this->module_model->get_by_id($id);
    //         if (!$module) {
    //             return $this->load->view('error');
    //         }
    //         $data['title']='编辑模块';
    //         $data['module']=$module;
    //         $this->load->model('test_point_model');
    //         if ($module['type']==0) {
    //             $data['test_points']=$this->module_model->get_relative_test_point($module['id']);
    //         } else {
    //             $data['test_points']=$this->module_model->get_relative_test_point($module['parent_id']);
    //         }
    //         $data['relative_test_points']=$this->module_model->get_relative_test_point($module['id']);
    //         $this->load->view('teacher_module/edit', $data);
    //     } else {
    //         //读取数据
    //         $this->load->model('module_model');
    //         $id=$this->input->post('module_id');
    //         $module=$this->module_model->get_by_id($id);
    //         if (!$module) {
    //             return $this->load->view('error');
    //         }
    //         if ($this->form_validation->run('teacher_module/edit')) {
    //             //post方法
    //             $name=$this->input->post('module_name');
    //             $time_limit=$this->input->post('module_time_limit');
    //             $type=1;
    //             $relative_test_points=$this->input->post('relative_test_points');

    //             $this->load->model('teacher_model');
    //             $me=$this->teacher_model->get_by_username($this->session->userdata('r_username'));
    //             if ($module['type']==1) {
    //                 //如果是自定义类型，做更新操作
    //                 //将模块写入数据库
    //                 $item = array(
    //                     'name' => $name,
    //                     'time_limit' => $time_limit,
    //                     'type' => $type,
    //                      );
                
    //                 //数据库操作
    //                 if ($this->module_model->delete_relative_test_point($id)&&
    //                     $this->module_model->add_relative_test_point($id, $relative_test_points)&&
    //                     $this->module_model->update($id, $item)
    //                     ) {
    //                     $this->session->set_flashdata('message', '操作成功');
    //                     redirect('teacher_module/index');
    //                 } else {
    //                     $this->session->set_flashdata('message', '操作失败');
    //                     redirect('teacher_module/index');
    //                 }
    //             } else {
    //                 //如果是系统模块，做新建操作
    //                 $item = array(
    //                     'name' => $name,
    //                     'time_limit' => $time_limit,
    //                     'type' => $type,
    //                     'parent_id'=>$module['id'],
    //                     'big_lecture_id'=>1;
    //                     'module_sort'=>$module['module_sort']
    //                      );
    //                 $this->load->model('module_model');
    //                 if ($this->module_model->add($item)) {
    //                     $module_id=$this->db->insert_id();
    //                     $item = array(
    //                         'teacher_id'=>$me['id'],
    //                         'module_id'=>$module_id
    //                          );
    //                     $this->module_model->inertTeacherInModule($item);
    //                     //添加模块和考点的关系
    //                     if ($this->module_model->add_relative_test_point($module_id, $relative_test_points)) {
    //                         $this->session->set_flashdata('message', '操作成功');
    //                         redirect('teacher_module/index');
    //                     }
    //                 }
    //                 $this->session->set_flashdata('message', '操作失败');
    //                 redirect('teacher_module/index');
    //             }
    //         } else {
    //             //验证失败
    //             //get方法
    //             $data['title']='编辑模块';
    //             $data['module']=$module;

    //             $this->load->model('test_point_model');
    //             $data['test_points']=$this->test_point_model->get_all();
                
    //             $data['relative_test_points']=$this->module_model->get_relative_test_point($module['id']);

    //             $this->load->view('admin_module/edit', $data);
    //         }
    //     }
    // }



    /**
     * 老师删除一个自定义模块
     * @param  [type] $id [description]
     * @return [type]     [description]
     */
    public function delete($id)
    {
        $this->load->model('module_model');
        $module=$this->module_model->get_by_id($id);
        if (!$module) {
            return $this->load->view('error');
        }
        //如果是系统类型的模块（考卷），阻止删除
        if ($module['type']==0) {
            return $this->load->view('error');
        }

        if ($this->module_model->delete_cascade($id)) {
            $this->session->set_flashdata('message', '操作成功');
        } else {
            $this->session->set_flashdata('message', '存在相关引用，操作失败');
        }

        redirect('teacher_module/index');
    }
}
